<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.7"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>netLink C++ 11: MsgPack::Element Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">netLink C++ 11
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.7 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>MsgPack</b></li><li class="navelem"><a class="el" href="class_msg_pack_1_1_element.html">Element</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_msg_pack_1_1_element-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">MsgPack::Element Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">

<p>Abstract class to represent one element in a MsgPack stream.  
 <a href="class_msg_pack_1_1_element.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_element_8h_source.html">Element.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MsgPack::Element:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_msg_pack_1_1_element.png" usemap="#MsgPack::Element_map" alt=""/>
  <map id="MsgPack::Element_map" name="MsgPack::Element_map">
<area href="class_msg_pack_1_1_header.html" title="MsgPack::Element to represent the header of a dynamical length element." alt="MsgPack::Header" shape="rect" coords="310,56,455,80"/>
<area href="class_msg_pack_1_1_number.html" title="MsgPack::Element for all types of numbers." alt="MsgPack::Number" shape="rect" coords="465,56,610,80"/>
<area href="class_msg_pack_1_1_primitive.html" title="MsgPack::Element to represent one byte primitives like booleans and null." alt="MsgPack::Primitive" shape="rect" coords="620,56,765,80"/>
<area href="class_msg_pack_1_1_array_header.html" title="MsgPack::Header representing only the header of a array." alt="MsgPack::ArrayHeader" shape="rect" coords="0,112,145,136"/>
<area href="class_msg_pack_1_1_data.html" title="MsgPack::Header with a additional buffer used as body." alt="MsgPack::Data" shape="rect" coords="310,112,455,136"/>
<area href="class_msg_pack_1_1_map_header.html" title="MsgPack::Header representing only the header of a map." alt="MsgPack::MapHeader" shape="rect" coords="620,112,765,136"/>
<area href="class_msg_pack_1_1_array.html" title="MsgPack::ArrayHeader representing the header and the content of a array." alt="MsgPack::Array" shape="rect" coords="0,168,145,192"/>
<area href="class_msg_pack_1_1_binary.html" title="MsgPack::Data to represent binary/raw data elements." alt="MsgPack::Binary" shape="rect" coords="155,168,300,192"/>
<area href="class_msg_pack_1_1_extended.html" title="MsgPack::Data to represent extended elements." alt="MsgPack::Extended" shape="rect" coords="310,168,455,192"/>
<area href="class_msg_pack_1_1_string.html" title="MsgPack::Data to represent strings." alt="MsgPack::String" shape="rect" coords="465,168,610,192"/>
<area href="class_msg_pack_1_1_map.html" title="MsgPack::MapHeader representing the header and the content of a map." alt="MsgPack::Map" shape="rect" coords="620,168,765,192"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a11983f0819dc822ab1b885375b057f16"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="class_msg_pack_1_1_element.html">Element</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#a11983f0819dc822ab1b885375b057f16">copy</a> () const =0</td></tr>
<tr class="memdesc:a11983f0819dc822ab1b885375b057f16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a deep copy of this element.  <br /></td></tr>
<tr class="separator:a11983f0819dc822ab1b885375b057f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4363c2a4e0dbc522587a46c6542a3b1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#ad4363c2a4e0dbc522587a46c6542a3b1">toJSON</a> (std::ostream &amp;stream) const =0</td></tr>
<tr class="memdesc:ad4363c2a4e0dbc522587a46c6542a3b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a human readable JSON-like string into the given stream.  <br /></td></tr>
<tr class="separator:ad4363c2a4e0dbc522587a46c6542a3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cf8191016ea14574124577621c1a4a"><td class="memItemLeft" align="right" valign="top">virtual Type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#af9cf8191016ea14574124577621c1a4a">getType</a> () const =0</td></tr>
<tr class="memdesc:af9cf8191016ea14574124577621c1a4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the MsgPack::Type.  <br /></td></tr>
<tr class="separator:af9cf8191016ea14574124577621c1a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7a39a74fbd393087442df2d4aa4815f"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#ae7a39a74fbd393087442df2d4aa4815f">getSizeInBytes</a> () const</td></tr>
<tr class="memdesc:ae7a39a74fbd393087442df2d4aa4815f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size in bytes this <a class="el" href="class_msg_pack_1_1_element.html" title="Abstract class to represent one element in a MsgPack stream.">MsgPack::Element</a> takes if completely serialized.  <br /></td></tr>
<tr class="separator:ae7a39a74fbd393087442df2d4aa4815f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a2658a4a70d15fe463891a4597b85e243"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#a2658a4a70d15fe463891a4597b85e243">startSerialize</a> ()</td></tr>
<tr class="memdesc:a2658a4a70d15fe463891a4597b85e243"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the initial serializer position in bytes (negative value if there is a header)  <br /></td></tr>
<tr class="separator:a2658a4a70d15fe463891a4597b85e243"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7487754e1758cdab091822fbe97e8c55"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#a7487754e1758cdab091822fbe97e8c55">startDeserialize</a> (uint8_t firstByte)=0</td></tr>
<tr class="memdesc:a7487754e1758cdab091822fbe97e8c55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads in one byte and returns the initial deserializer position in bytes (negative value if there is a header)  <br /></td></tr>
<tr class="separator:a7487754e1758cdab091822fbe97e8c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6914dffd1849882c6a4c315c2b39f3a"><td class="memItemLeft" align="right" valign="top">virtual std::streamsize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#ad6914dffd1849882c6a4c315c2b39f3a">serialize</a> (int64_t &amp;pos, std::basic_streambuf&lt; char &gt; *streamBuffer, std::streamsize bytes)=0</td></tr>
<tr class="memdesc:ad6914dffd1849882c6a4c315c2b39f3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serializes bytes at the given serializer position pos into streamBuffer.  <br /></td></tr>
<tr class="separator:ad6914dffd1849882c6a4c315c2b39f3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae79129328781728c7de690826dfbc774"><td class="memItemLeft" align="right" valign="top">virtual std::streamsize&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#ae79129328781728c7de690826dfbc774">deserialize</a> (int64_t &amp;pos, std::basic_streambuf&lt; char &gt; *streamBuffer, std::streamsize bytes)</td></tr>
<tr class="memdesc:ae79129328781728c7de690826dfbc774"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deserializes bytes at the given deserializer position pos from streamBuffer.  <br /></td></tr>
<tr class="separator:ae79129328781728c7de690826dfbc774"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a385642caa044d461759d06e04e929da8"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#a385642caa044d461759d06e04e929da8">containerDeserialized</a> ()</td></tr>
<tr class="memdesc:a385642caa044d461759d06e04e929da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the header of a container is deserialized and reserves the necessary space for its element vector.  <br /></td></tr>
<tr class="separator:a385642caa044d461759d06e04e929da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88f9d934202b2105e0709966f8007dfe"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; std::unique_ptr&lt; <a class="el" href="class_msg_pack_1_1_element.html">Element</a> &gt; &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#a88f9d934202b2105e0709966f8007dfe">getElementsVector</a> ()</td></tr>
<tr class="memdesc:a88f9d934202b2105e0709966f8007dfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a raw pointer to the element vector of a container.  <br /></td></tr>
<tr class="separator:a88f9d934202b2105e0709966f8007dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a994120fc667b2ffbc163057bb520247e"><td class="memItemLeft" align="right" valign="top">virtual int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_msg_pack_1_1_element.html#a994120fc667b2ffbc163057bb520247e">getEndPos</a> () const =0</td></tr>
<tr class="memdesc:a994120fc667b2ffbc163057bb520247e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the first invalid (de)serializer position.  <br /></td></tr>
<tr class="separator:a994120fc667b2ffbc163057bb520247e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="friends" name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:ad3f5346f31d572dd2ab4fcd658de5bc4"><td class="memItemLeft" align="right" valign="top"><a id="ad3f5346f31d572dd2ab4fcd658de5bc4" name="ad3f5346f31d572dd2ab4fcd658de5bc4"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>Serializer</b></td></tr>
<tr class="separator:ad3f5346f31d572dd2ab4fcd658de5bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c541e43f0cc8d5a52e519ebcf1709f5"><td class="memItemLeft" align="right" valign="top"><a id="a0c541e43f0cc8d5a52e519ebcf1709f5" name="a0c541e43f0cc8d5a52e519ebcf1709f5"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>Deserializer</b></td></tr>
<tr class="separator:a0c541e43f0cc8d5a52e519ebcf1709f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract class to represent one element in a MsgPack stream. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a385642caa044d461759d06e04e929da8" name="a385642caa044d461759d06e04e929da8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a385642caa044d461759d06e04e929da8">&#9670;&#160;</a></span>containerDeserialized()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool MsgPack::Element::containerDeserialized </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns true if the header of a container is deserialized and reserves the necessary space for its element vector. </p>

<p>Reimplemented in <a class="el" href="class_msg_pack_1_1_array.html#aa67f7133e66a575f67285f7f45a7ec24">MsgPack::Array</a>, and <a class="el" href="class_msg_pack_1_1_map.html#ae4d5dc7b74878907b7f0cc7f749d0d21">MsgPack::Map</a>.</p>

</div>
</div>
<a id="a11983f0819dc822ab1b885375b057f16" name="a11983f0819dc822ab1b885375b057f16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11983f0819dc822ab1b885375b057f16">&#9670;&#160;</a></span>copy()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::unique_ptr&lt; <a class="el" href="class_msg_pack_1_1_element.html">Element</a> &gt; MsgPack::Element::copy </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a deep copy of this element. </p>

<p>Implemented in <a class="el" href="class_msg_pack_1_1_array.html#aa6ae1097cc67c3df62de26a7db106e73">MsgPack::Array</a>, <a class="el" href="class_msg_pack_1_1_map.html#adb3b43e3756974acb28023550114938e">MsgPack::Map</a>, <a class="el" href="class_msg_pack_1_1_array_header.html#a1eb167f38cb472f1613212a8f0f23cd5">MsgPack::ArrayHeader</a>, <a class="el" href="class_msg_pack_1_1_map_header.html#abf3e7fe6ea4e29eb7ee6c66f87bc8c55">MsgPack::MapHeader</a>, <a class="el" href="class_msg_pack_1_1_binary.html#ad24c316bbca47ed564848cb9d4e1bccb">MsgPack::Binary</a>, <a class="el" href="class_msg_pack_1_1_extended.html#a0e3c54f4993ea3984f8dc26e71e42d64">MsgPack::Extended</a>, <a class="el" href="class_msg_pack_1_1_string.html#aa02cc7e9d375062ea9a31f2fa07ecd6d">MsgPack::String</a>, <a class="el" href="class_msg_pack_1_1_number.html#a26b8c963909b07d21f48ebeaef53f56b">MsgPack::Number</a>, and <a class="el" href="class_msg_pack_1_1_primitive.html#a78ab25d53609934a473756deff5cae6a">MsgPack::Primitive</a>.</p>

</div>
</div>
<a id="ae79129328781728c7de690826dfbc774" name="ae79129328781728c7de690826dfbc774"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae79129328781728c7de690826dfbc774">&#9670;&#160;</a></span>deserialize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::streamsize MsgPack::Element::deserialize </td>
          <td>(</td>
          <td class="paramtype">int64_t &amp;&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::basic_streambuf&lt; char &gt; *&#160;</td>
          <td class="paramname"><em>streamBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::streamsize&#160;</td>
          <td class="paramname"><em>bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Deserializes bytes at the given deserializer position pos from streamBuffer. </p>

<p>Reimplemented in <a class="el" href="class_msg_pack_1_1_data.html#ad3864402c4045cb0fa0553a6e6d6578d">MsgPack::Data</a>, <a class="el" href="class_msg_pack_1_1_header.html#a2be15a3892d70af569c7339b2c69d485">MsgPack::Header</a>, and <a class="el" href="class_msg_pack_1_1_number.html#a76bc8f07201cc3ceea0d86c33839b09b">MsgPack::Number</a>.</p>

</div>
</div>
<a id="a88f9d934202b2105e0709966f8007dfe" name="a88f9d934202b2105e0709966f8007dfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88f9d934202b2105e0709966f8007dfe">&#9670;&#160;</a></span>getElementsVector()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::vector&lt; std::unique_ptr&lt; <a class="el" href="class_msg_pack_1_1_element.html">Element</a> &gt; &gt; * MsgPack::Element::getElementsVector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a raw pointer to the element vector of a container. </p>

<p>Reimplemented in <a class="el" href="class_msg_pack_1_1_array.html#a0412ed2fdf76484c449fb71403a645d0">MsgPack::Array</a>, and <a class="el" href="class_msg_pack_1_1_map.html#a1e2b50b5322bf637ad0dca37cb4a841f">MsgPack::Map</a>.</p>

</div>
</div>
<a id="a994120fc667b2ffbc163057bb520247e" name="a994120fc667b2ffbc163057bb520247e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a994120fc667b2ffbc163057bb520247e">&#9670;&#160;</a></span>getEndPos()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int64_t MsgPack::Element::getEndPos </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the first invalid (de)serializer position. </p>

<p>Implemented in <a class="el" href="class_msg_pack_1_1_binary.html#ae3102c1e7ff6bf52ebf552909487f6d5">MsgPack::Binary</a>, <a class="el" href="class_msg_pack_1_1_extended.html#ad4acdb7035754892287d636972947a5b">MsgPack::Extended</a>, <a class="el" href="class_msg_pack_1_1_string.html#a652b1e898e069c6780c603e16920097e">MsgPack::String</a>, <a class="el" href="class_msg_pack_1_1_header.html#a51fa94540ec8c1634f148308ffc0b872">MsgPack::Header</a>, <a class="el" href="class_msg_pack_1_1_number.html#a18a44a807ed8c9d4168025b1f0ecee0e">MsgPack::Number</a>, and <a class="el" href="class_msg_pack_1_1_primitive.html#ab334fe1d38b8826947b5cba6e64fcb91">MsgPack::Primitive</a>.</p>

</div>
</div>
<a id="ae7a39a74fbd393087442df2d4aa4815f" name="ae7a39a74fbd393087442df2d4aa4815f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7a39a74fbd393087442df2d4aa4815f">&#9670;&#160;</a></span>getSizeInBytes()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual uint32_t MsgPack::Element::getSizeInBytes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the size in bytes this <a class="el" href="class_msg_pack_1_1_element.html" title="Abstract class to represent one element in a MsgPack stream.">MsgPack::Element</a> takes if completely serialized. </p>

<p>Reimplemented in <a class="el" href="class_msg_pack_1_1_array.html#a7da34b5f1bb1a3278c4bcbf9834685bb">MsgPack::Array</a>, <a class="el" href="class_msg_pack_1_1_map.html#ada3fe14c6222d6bdfdf258d6b637fa51">MsgPack::Map</a>, <a class="el" href="class_msg_pack_1_1_array_header.html#ae093628601fdb46f3463e1daa7311e45">MsgPack::ArrayHeader</a>, <a class="el" href="class_msg_pack_1_1_map_header.html#a002104dfa073a6a011332d7dc41c4f9d">MsgPack::MapHeader</a>, and <a class="el" href="class_msg_pack_1_1_header.html#ae54f5090f9929e9369b77ad79d2e8a34">MsgPack::Header</a>.</p>

</div>
</div>
<a id="af9cf8191016ea14574124577621c1a4a" name="af9cf8191016ea14574124577621c1a4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9cf8191016ea14574124577621c1a4a">&#9670;&#160;</a></span>getType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual Type MsgPack::Element::getType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the MsgPack::Type. </p>

<p>Implemented in <a class="el" href="class_msg_pack_1_1_header.html#a6b027375f99031ac2458cc40e3128411">MsgPack::Header</a>, <a class="el" href="class_msg_pack_1_1_number.html#aa0c389c3aeca01236bd41c4e10f3be86">MsgPack::Number</a>, and <a class="el" href="class_msg_pack_1_1_primitive.html#a37056ac377c8c0658fbdaedfbc89a90e">MsgPack::Primitive</a>.</p>

</div>
</div>
<a id="ad6914dffd1849882c6a4c315c2b39f3a" name="ad6914dffd1849882c6a4c315c2b39f3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6914dffd1849882c6a4c315c2b39f3a">&#9670;&#160;</a></span>serialize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::streamsize MsgPack::Element::serialize </td>
          <td>(</td>
          <td class="paramtype">int64_t &amp;&#160;</td>
          <td class="paramname"><em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::basic_streambuf&lt; char &gt; *&#160;</td>
          <td class="paramname"><em>streamBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::streamsize&#160;</td>
          <td class="paramname"><em>bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Serializes bytes at the given serializer position pos into streamBuffer. </p>

<p>Implemented in <a class="el" href="class_msg_pack_1_1_data.html#ad18c41a501dd542b88dddeb4eda1c8bb">MsgPack::Data</a>, <a class="el" href="class_msg_pack_1_1_header.html#a83ad27bdd37805f1a8e3df0fa477d542">MsgPack::Header</a>, <a class="el" href="class_msg_pack_1_1_number.html#a208481162e797fa58a3b370efa39039e">MsgPack::Number</a>, and <a class="el" href="class_msg_pack_1_1_primitive.html#a3cc2ced223c2b5038ffb8c1af9e7f49d">MsgPack::Primitive</a>.</p>

</div>
</div>
<a id="a7487754e1758cdab091822fbe97e8c55" name="a7487754e1758cdab091822fbe97e8c55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7487754e1758cdab091822fbe97e8c55">&#9670;&#160;</a></span>startDeserialize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int64_t MsgPack::Element::startDeserialize </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>firstByte</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reads in one byte and returns the initial deserializer position in bytes (negative value if there is a header) </p>

<p>Implemented in <a class="el" href="class_msg_pack_1_1_header.html#a09ece23cec4435cc501889997160b672">MsgPack::Header</a>, <a class="el" href="class_msg_pack_1_1_number.html#abc0b3b28c008affa858cfff5a608b2bd">MsgPack::Number</a>, and <a class="el" href="class_msg_pack_1_1_primitive.html#ae35d584d2a500c19676059b330dc738c">MsgPack::Primitive</a>.</p>

</div>
</div>
<a id="a2658a4a70d15fe463891a4597b85e243" name="a2658a4a70d15fe463891a4597b85e243"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2658a4a70d15fe463891a4597b85e243">&#9670;&#160;</a></span>startSerialize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int64_t MsgPack::Element::startSerialize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the initial serializer position in bytes (negative value if there is a header) </p>

<p>Reimplemented in <a class="el" href="class_msg_pack_1_1_header.html#a61a541b11c0c76e2953e1e8a49c33fe5">MsgPack::Header</a>.</p>

</div>
</div>
<a id="ad4363c2a4e0dbc522587a46c6542a3b1" name="ad4363c2a4e0dbc522587a46c6542a3b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4363c2a4e0dbc522587a46c6542a3b1">&#9670;&#160;</a></span>toJSON()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void MsgPack::Element::toJSON </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Writes a human readable JSON-like string into the given stream. </p>

<p>Implemented in <a class="el" href="class_msg_pack_1_1_array.html#aa10fb2c8c1696cbe214c2a1aaf2576ca">MsgPack::Array</a>, <a class="el" href="class_msg_pack_1_1_map.html#a069bdc424df4b3a1cce0b551d336cf70">MsgPack::Map</a>, <a class="el" href="class_msg_pack_1_1_array_header.html#af5116f10cca7a65d4aae0e4a768f2079">MsgPack::ArrayHeader</a>, <a class="el" href="class_msg_pack_1_1_map_header.html#a462403ed9f65e13d5fa7ec7d640485a7">MsgPack::MapHeader</a>, <a class="el" href="class_msg_pack_1_1_binary.html#a627c3628fbc802c00b7e60538258c50d">MsgPack::Binary</a>, <a class="el" href="class_msg_pack_1_1_extended.html#a8bb09009766f81d21ad35b89bdad6a7c">MsgPack::Extended</a>, <a class="el" href="class_msg_pack_1_1_string.html#ae48418fcd7cd3d4fcbc1244e227072f7">MsgPack::String</a>, <a class="el" href="class_msg_pack_1_1_number.html#a914127f15b0b302d018eb493fd429ca6">MsgPack::Number</a>, and <a class="el" href="class_msg_pack_1_1_primitive.html#a50fa31f1491e0ddb80607655d45158c8">MsgPack::Primitive</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/<a class="el" href="_element_8h_source.html">Element.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
</small></address>
</body>
</html>
